#pragma once

#include "zen_vap_node.h"
#include <vector>
#include <mutex>

namespace Zen { namespace Vap {
	/// Layer without transform
	class Layer : public Node {
	public:
		Layer();

		Node* touchDown(AppTouch const & touch) override;

		void draw() override;
	};

	/// Layer with 2d transform
	class Layer2d : public Node2d, public PartWithMatrix2d {
	public:
		Layer2d();

		Node* touchDown(AppTouch const & touch) override;

		virtual void draw() override;
	};


	/// Layer with 2d transform
	class Layer3d : public Node3d, public PartWithMatrix3d {
	public:
		Layer3d();

		Node* touchDown(AppTouch const & touch) override;

		virtual void draw() override;
	};

}}
